package cn.tedu.cinema.user.mapper;

import cn.tedu.cinema.user.pojo.dto.UserQuery;
import cn.tedu.cinema.user.pojo.dto.UserSaveParam;
import cn.tedu.cinema.user.pojo.dto.UserUpdateParam;
import cn.tedu.cinema.user.pojo.entity.User;
import cn.tedu.cinema.user.pojo.vo.UserRegistrationVO;
import cn.tedu.cinema.user.pojo.vo.UserVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/* @Repository表示当前是持久层的一部分,主要职责是进行数据库的操作 */
@Repository
public interface UserMapper {
    UserVO selectByUsername(String username);

    void insert(User user);

    List<UserVO> selectUser( @Param("pageNum") int pageNum,
                             @Param("pageSize") int pageSize,
                             @Param("userQuery") UserQuery userQuery);

    void update(User user);
    void updatePassword(UserUpdateParam userUpdateParam);
    void deleteById(Long userId);

    UserVO selectById(Long parentId);
    List<UserRegistrationVO> selectUserName();
}
